Human activity monitoring device

ABSTRACT

A method for monitoring human activity using an inertial sensor includes monitoring accelerations from an inertial sensor integrated into a garment. The accelerations are processed to determine one or more acceleration statistics, and transmit the acceleration statistics.

RELATED APPLICATIONS

The present application is a continuation of U.S. application Ser. No.11/732,949, filed on Apr. 4, 2007, which is U.S. Pat. No. 7,753,861issuing on Jul. 13, 2010.

FIELD OF THE INVENTION

This invention relates to a method of monitoring human activity, andmore particularly to an inertial device integrated into a garment havinga human activity monitoring device.

BACKGROUND

The development of Micro-Electro-Mechanical Systems (MEMS) technologyhas enabled manufacturers to produce inertial sensors (e.g.,accelerometers) of sufficiently small size, cost, and power consumptionto fit into portable electronic devices. Such inertial sensors can befound in a limited number of commercial electronic devices such ascellular phones, portable music players, pedometers, game controllers,and portable computers.

Step counting devices (e.g., pedometers) are used to monitor anindividual's daily activity by keeping track of the number of steps thathe or she takes. In general, step counting devices are clipped to auser's hip, and do not accurately count steps when placed elsewhere on auser's body.

Some step counting devices include an inertial sensor placed at specificlocations on a user's body (e.g., in a user's shoe or belt). Theseinertial sensors wirelessly transmit raw acceleration data to a mobiledevice (e.g., a wrist watch) having an acceleration processing unit. Theacceleration processing unit counts steps based on the receivedacceleration data. These steps can then be displayed on the mobiledevice.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and not by wayof limitation, and can be more fully understood with reference to thefollowing detailed description when considered in connection with thefollowing figures:

FIG. 1 is a block diagram illustrating an electronic device, inaccordance with one embodiment of the present invention;

FIG. 2 is a block diagram illustrating a motion identification system,in accordance with one embodiment of the present invention;

FIG. 3 illustrates a front view of a user wearing a motionidentification system on the torso, in accordance with one embodiment ofthe present invention;

FIG. 4 illustrates a first exemplary motion cycle graph that shows auser engaged in a user activity as measured by an accelerometer;

FIG. 5 illustrates a flow diagram for a method of monitoring humanactivity using an inertial sensor, in accordance with one embodiment ofthe present invention;

FIG. 6 illustrates a flow diagram for a method of monitoring humanactivity using an inertial sensor, in accordance with one embodiment ofthe present invention.

FIG. 7 is a block diagram illustrating one embodiment of an electronicdevice;

FIGS. 8A and 8B illustrate exemplary rolling average graphs that measuretime versus acceleration;

FIG. 9 illustrates an exemplary cadence of motion graph that measurestime versus acceleration;

FIGS. 10A and 10B illustrate exemplary gravitational influence graphs;

FIG. 11 illustrates a plan view of a dominant axis that does notcorrespond to an actual axis;

FIG. 12 illustrates an exemplary probability range represented by aplurality of cones; and

FIG. 13 shows a processing diagram for a method of determining anorientation of an accelerometer in accordance with one embodiment of thepresent invention.

DETAILED DESCRIPTION

Embodiments of the present invention are designed to monitor humanactivity using an inertial sensor. In one embodiment, accelerations aremonitored from an inertial sensor disposed in a garment. Theaccelerations are processed to determine one or more accelerationstatistics, examples of which include speed, distance, and number ofsteps taken. The acceleration statistics are formatted to a genericformat understandable by a plurality of devices. The formattedacceleration statistics are then transmitted. The transmission may be awireless transmission to one or more of the plurality of devices.

FIG. 1 is a block diagram illustrating an electronic device 100, inaccordance with one embodiment of the present invention. In oneembodiment, the electronic device 100 is a portable electronic devicethat includes one or more inertial sensors. The inertial sensors maymeasure accelerations along a single axis or multiple axes, and maymeasure linear as well as rotational (angular) accelerations. In oneembodiment, one or more inertial sensors together provide threedimensional acceleration data.

The electronic device 100 may be used to identify user activities andcount periodic human motions appropriate to the identified useractivities. In one embodiment, electronic device 100 operates inconjunction with additional devices (e.g., a server or mobile computingdevice) and/or sensors to identify user activities and count periodichuman motions. In one embodiment, periodic human motions may beaccurately counted regardless of the placement and/or orientation of thedevice 100 on a user. Periodic human motions may be accurately countedwhether the electronic device 100 maintains a fixed orientation orchanges orientation during operation.

The electronic device 100 in one embodiment comprises an activityidentification engine 115, a motion processor 120, an inertial sensor135, a memory 110, a wireless protocol 125 and one or more wirelesscomponents 125. The electronic device 100 may further comprise one ormore additional sensors 140 and a display driver 130.

The inertial sensor 135 may continuously take measurements ofacceleration data. The measurements of acceleration data are taken at asampling rate that may be fixed or variable. In one embodiment, theinertial sensor 135 receives a timing signal from a timer (not shown) inorder to take measurements at the sampling rate. In one embodiment, theinertial sensor 135 is coupled to the activity identification engine 115and to the motion processor 120, and acceleration measurement data issent to the activity identification engine 115 and to the motionprocessor 120 for processing. In one embodiment, the inertial sensor 135is coupled to the memory 110, and measurement data 150 from the inertialsensor 135 is stored in the memory 110.

In one embodiment, measurements are taken of the one or more additionalsensors 140, and sent to the activity identification engine 115, themotion processor 120, and/or the memory 110. In one embodiment, the oneor more additional sensors 140 include a heart rate sensor such as anelectrocardiograph (EKG or ECG). Additional sensors 140 may also includeadditional inertial sensors, a pressure sensor, a moisture sensor, acapacitance sensor, a sound sensor (e.g., microphone), a heat sensor(e.g., thermometer, thermistor, etc.), or any other sensor capable ofplacement in a portable device. In one embodiment, the one or moreadditional sensors 140 take measurements at one or more set samplingrates that may be fixed or variable. In one embodiment, the set samplingrates are the same as the sampling rate at which the accelerationmeasurements are taken. Alternatively, one or more of the set samplingrates may vary from the sampling rate of the acceleration measurements.

In one embodiment, acceleration measurement data is processed by theactivity identification engine 115 to identify a user activity. Theactivity identification engine 115 may identify the user activity from aplurality of identifiable user activities. The activity identificationengine may identify a user activity by monitoring for different events,each event indicative of a different type of activity. In oneembodiment, when enough events indicative of a particular user activityare detected, the activity identification engine 115 notifies the motionprocessor 120 that the identified activity is being performed by theuser. One embodiment of a method for identifying user activities may befound in co-pending application U.S. Ser. No. 60/900,412, which isincorporated herein by reference. Alternative means of identifying useractivities may be used in other embodiments.

In one embodiment, only acceleration measurement data is used to detectevents that identify user activities. Alternatively, measurements fromone or more of the additional sensors 140 may be used to facilitate useractivity identification. For example, heart rate measurements showing aheart rate greater than a threshold value may indicate that a user isexerting himself, which may trigger an event for a user activity of, forexample, running.

The motion processor 120 may process acceleration measurement data todetect periodic human motions. In one embodiment, a series of motioncriteria are applied to the acceleration measurement data. If each ofthe motion criteria are satisfied, a periodic human motion may beidentified, and counted. In one embodiment, a different set of motioncriteria may apply for each user activity. Once the activityidentification engine 115 has identified a user activity, the motionprocessor 120 may apply a set of motion criteria specific to theidentified activity to detect appropriate periodic human motions. Whenan appropriate periodic human motion is detected, it may be recorded asone of the user activity statistics 145 (e.g., number of steps walked)in the memory 110. One embodiment of a method for counting periodichuman motions may be found in co-pending application U.S. Ser. No.11/644,455, which is incorporated herein by reference. Alternative meansof counting periodic human motions may be used in other embodiments.

In one embodiment, the motion processor 120 generates user activitystatistics based on measurements from the inertial sensor 135.Alternatively, one or more of the additional sensors 140 may also beused to generate user activity statistics. Examples of user activitystatistics include periodic human motion counts, distance, speed, etc.In one embodiment, the user activity statistics are formatted by themotion processor 120 once they are generated. The user activitystatistics may be formatted into one or more formats. In one embodiment,the user activity statistics are formatted to a generic formatunderstandable by multiple different computing devices. Examples ofgeneric formats for the user activity statistics include extensiblemarkup language (XML) and standard generalized markup language (SGML).In one embodiment, the format used for the user activity statistics isuser selectable.

One type of user activity statistic is a periodic human motion count. Aseparate periodic human motion count may be maintained for each type ofperiodic human motion. For example, a separate count may be maintainedfor walking, running, inline skating, rowing, bicycling, and so on. Atotal periodic human motion count that includes all periodic humanmotions may also be maintained.

Other user activity statistics include heart rate, body temperature,breathing rate, distance, speed, altitude change, and so on. These useractivity statistics may be correlated to specific user activities.Therefore, a user may find out, for example, the distance run versus thedistance walked during a training session, as well as average speed,average running heart rate, average walking heart rate, and so on. Auser may also determine, for example, daily activity levels, weeklyactivity levels, etc., from the user activity statistics. This mayprovide a user with information useful for athletic training and health.

In one embodiment, electronic device 100 includes one or more feedbackelements 160. Feedback elements 160 may be part of the electronic device100, or may be external to the electronic device. Feedback elements 160may provide one or more of aural feedback (e.g, a buzz, beep, tune,spoken words, etc.), visual feedback (e.g., a blinking or solid light,number display, etc.) and tactile feedback (e.g., a vibration, movement,or slight shock). Feedback may be used, for example, to notify a user tospeed up or to slow down, to notify a user that a specified period oftime has elapsed, etc. In one embodiment, the type of user feedback, andwhen to provide user feedback, is user selectable. For example, a usermay select to be given a notice to slow down when the user's heart rateexceeds an upper threshold, and to speed up when the user's heart ratefalls below a lower threshold. Multiple feedback conditions may beactive concurrently. For example, a user may select to receive feedbackif a running speed falls below a lower threshold and if a heart ratefalls below a lower threshold. Thereby, a user may more accuratelycontrol workout intensity.

In one embodiment, user activity statistics 145 are stored in memory110. Alternatively, the user activity statistics may be transmitted toan additional electronic device (not shown) such as a server or storageunit. In one embodiment, the memory 110 stores measurement data 150,which may later be processed by the electronic device 100, or by anexternal device such as a server. Alternatively, measurement data 150may not be stored, or it may be transmitted to an additional electronicdevice for storage.

In one embodiment, the electronic device 100 includes a wirelessprotocol 125 and one or more wireless components 125. The wirelessprotocol may be Bluetooth, Zigbee, infrared, radiofrequency (RF),personal area network (PAN), or any other wireless communicationprotocol. Alternatively, the electronic device 100 may include a wiredprotocol such as firewire, universal serial bus (USB), etc. In oneembodiment, the electronic device 100 includes both a wireless protocol125 and a wired protocol. The wireless and/or wired protocol may enablethe electronic device to communicate with additional devices, such as aserver, mobile device, personal computer, etc.

In one embodiment, the electronic device 100 includes a display driver130. The display driver 130 may control a built in display (not shown)of the electronic device, or an external display (not shown) that may beconnected to the electronic device 100.

In one embodiment, the activity identification engine 115, motionprocessor 120, display driver 130 and wireless protocol 125 are logicsexecuted by a microcontroller 105, field programmable gate array (FPGA),application specific integrated circuit (ASIC), or other dedicatedprocessing unit. In another embodiment, one or more of the activityidentification engine 115, motion processor 120, display driver 130 andwireless protocol 125 may be logics executed by a central processingunit. Alternatively, one or more of the activity identification engine115, motion processor 120, display driver 130 and wireless protocol 125may include a state machine (e.g., an internal logic that knows how toperform a sequence of operations), a logic circuit (e.g., a logic thatgoes through a sequence of events in time, or a logic whose outputchanges immediately upon a changed input), or a combination of a statemachine and a logic circuit.

FIG. 2 is a block diagram illustrating a motion identification system200, in accordance with one embodiment of the present invention. Themotion identification system 200 in one embodiment includes a cheststrap 205 wirelessly connected to one or more mobile devices 210, one ormore external sensors 220, one or more external feedback elements 230, acomputing device 215, and a server 225. In alternative embodiments, thechest strap 205 may be connected to only some of the mobile devices 210,external sensors 220, server 225 and computing device 215. In oneembodiment, the chest strap 205 is not connected to any devices orsensors. In one embodiment, the chest strap 205 includes electronicdevice 100 of FIG. 1. In one embodiment, chest strap 205 is a strap wornunder or over clothing. Alternatively, chest strap 205 may be attachedto a garment. Alternatively, the chest strap 205 may be a garment madeof materials incorporating sensors, processors, and/or other components.

Returning to FIG. 2, the distribution of the functionality between thechest strap 205 and the devices, sensors and server may vary. In oneembodiment, all sensor data is processed by the chest strap 205. Thesensor data may be formatted by the chest strap 205 into a genericformat understandable by one or more of the mobile devices 210, server225 and computing device 215. Alternatively, the chest strap 205 maytransmit unprocessed and/or unformatted data to one or more of themobile devices 210, server 225, and/or computing device 215. In oneembodiment, signals are sent to external feedback elements 230 toprovide user feedback, for example, to indicate that user should speedup or slow down.

FIG. 3 illustrates a front view of a user 300 wearing body-mountedsystem, in accordance with one embodiment of the present invention. Inone embodiment, the system is chest strap 205 of FIG. 2.

Referring to FIG. 3, user 300 has an axis of symmetry 335 that dividesuser's 300 body into a right half 325 and a left half 330. In oneembodiment, the chest strap 310 is disposed on the user's 300 chest suchthat a center of the chest strap 310 approximately lines up with axis ofsymmetry 335. Therefore, the chest strap 310 may be equidistant from aright side of the torso 315 and from a left side of the torso 320.Alternatively, the chest strap 310 may be disposed approximately alongthe line of symmetry 335 at other locations of user's 300 body, such asat a user's 300 waist or back.

Placement of chest strap 310 along the line of symmetry 335 in oneembodiment enables differentiation between accelerations caused bymotions from the right half 325 of user's body and left half 330 ofuser's body. Therefore, chest strap 310 may distinguish between, forexample, steps taken by a right leg and steps taken by a left leg. Thismay assist users in refining their running technique, or provide anindication that something may be wrong with a user's left or right leg.

In one embodiment, the chest strap 310 is disposed on user's 300 chestat a fixed orientation such that a first axis 370 of the chest strap isapproximately aligned to gravity 350 when user 300 is standing. In oneembodiment, a second axis 375 of the chest strap extends laterally touser 300 (Medial-Lateral Axis), and a third axis 380 of the chest strapextends front-to-back in relation to user's 300 body (Ventral-DorsalAxis).

In one embodiment, placement of the chest strap 310 on user's 300 chestenables measurement of the center of mass of user 300. Such placementreduces random and/or secondary motions caused by, for example, armmovement or head movement. This may enable clean accelerationmeasurements to be taken along the first axis, which may improve theaccuracy of user activity statistics.

In one embodiment, the fixed orientation of the chest strap 310 enablesidentification of vertical movement, lateral movement, and front-to-backmovement. In one embodiment, the fixed orientation of the chest strap310 further enables first axis 370 to be used for counting periodichuman motions without first determining a dominant axis (e.g., an axisaligned closest to gravity). Alternatively, the dominant axis may bedetermined before or in conjunction with counting periodic humanmotions. One embodiment of a method for determining a dominant axis maybe found in co-pending application U.S. Ser. No. 11/603,472, which isincorporated herein by reference. Other means of determining a dominantaxis may be used in other embodiments. A more detailed discussion ofdetermining a dominant axis is discussed below with reference to FIGS.7-13.

In one embodiment, the dominant axis may be used to indicate whether auser has properly donned chest strap 310. For example, the dominant axismay be compared to the first axis 370, second axis 375 and third axis380 to determine whether chest strap 310 is properly oriented on user's300 torso.

A combination of the fixed orientation of the chest strap 310 and thedominant axis may be used to determine user 300 body position. In oneembodiment, the chest strap 310 may identify whether a user 300 is proneor upright. In one embodiment, the chest strap 310 can further identifya degree of inclination for the user 300 (e.g., degree to which user 300is leaning forward or backward).

FIG. 4 illustrates a first exemplary motion-cycle graph 400 that shows auser engaged in a user activity as measured by an accelerometer locatedin a chest strap. In one embodiment, the chest strap is chest strap 310of FIG. 3, and is approximately aligned to axis of symmetry 335 of FIG.3 in a fixed orientation.

Referring to FIG. 4, the exemplary motion-cycle graph 400 showsacceleration data taken with a single tri-axis inertial sensor. Theacceleration at a given period of time is represented for a verticalaxis 470, a lateral axis 475, and a ventral-dorsal axis 480.

In one embodiment, the vertical axis 470 is used to identify steps. Inone embodiment, gravity 440 provides a constant acceleration along thepositive direction of the vertical axis 470. Accordingly, any positiveacceleration along the vertical axis 470 is acceleration towards theearth, and any negative acceleration along the vertical axis 470 isacceleration away from the earth. Thus, a foot leaving the ground isindicated by a peak (spike) of acceleration along the vertical axis 470.Such peaks of acceleration are shown for the left foot 405, 415, 425 andfor the right foot 410, 420, 430. In alternative embodiments, gravitymay provide a permanent acceleration along the negative direction of thevertical axis 470. In such an embodiment, valleys (spikes) along thevertical axis 470 would indicate a foot leaving the ground.

Accelerations along the vertical axis 470 may be used to determinemultiple different user activity statistics. In one embodiment, thevertical axis may be used to identify a magnitude of acceleration thateach leg experiences. This may be useful, for example, to determine howmuch strain is placed on each leg during running and/or walking. In oneembodiment, points at which vertical acceleration 470 crosses 465gravity 440 (where the accelerations equal gravity) indicate that a useris in a state of free fall. In one embodiment, a shape of the peak(spike) of acceleration measurements along the vertical axis 470indicates an elasticity of the surface being walked or run on. Forexample, a sharp spike indicates a surface with relatively lowelasticity (e.g., concrete), while a gradual spike indicates a surfacewith relatively high elasticity (e.g., a rubber track). Surfaces with agreater elasticity absorb a greater amount of user impact, and aretherefore less damaging to a user's body. Other useful data may also bedetermined from the vertical axis 470.

In one embodiment, lateral axis 475 is used to identify whether a stepis being taken by a right foot or by a left foot. In the illustratedembodiment, any negative acceleration along the lateral axis indicatesacceleration towards the right, and any positive acceleration along thelateral axis indicates acceleration towards the left. Thus, the lateralaxis 475 may identify accelerations caused by the right foot 445 andaccelerations caused by the left foot 450. In alternative embodiments, apositive acceleration may indicate acceleration to the right, and anegative acceleration may indicate acceleration to the left.

In one embodiment, additional specifics about a user's gait may bedetermined based on accelerations along the lateral axis 475, theventral-dorsal axis 480 and/or the vertical axis 470. For example, theillustrated embodiment shows a greater acceleration along the verticalaxis 470 from the left foot than from the right foot. This differencebetween acceleration peaks 435 along the vertical axis 470 may identifya problem with the right leg (e.g., an injury or potential injury).Other useful information about a user's gait may also be determined,such as an amount of lateral motion accompanying each step, an amount ofunnecessary vertical motion with each step, an amount of force exertedby each step, etc.

Though FIG. 4 has been described in the context of identifying steps forwalking and running, the techniques described with reference to FIG. 4may equally be used when counting other periodic human motionsassociated with other user activities. Examples of such additional useractivities include inline skating, swimming, rowing, etc.

FIG. 5 illustrates a flow diagram for a method 500 of monitoring humanactivity using an inertial sensor, in accordance with one embodiment ofthe present invention. The method may be performed by processing logicthat may comprise hardware (e.g., circuitry, dedicated logic,programmable logic, microcode, etc.), software (such as instructions runon a processing device), or a combination thereof. In one embodiment,method 500 is performed by the electronic device 100 of FIG. 1. In oneembodiment, method 500 is performed by the motion identification system200 of FIG. 2.

Referring to FIG. 5, method 500 begins with monitoring accelerations(block 505). Accelerations may be monitored with an inertial sensor, orother acceleration monitoring device. At block 510, the accelerationsare processed to determine user activity statistics. Examples of useractivity statistics include number of periodic human motions counted,user speed, distance traveled, heart rate, and so on. For some useractivity statistics such as heart rate, measurements are gathered fromadditional sensors (e.g., an ECG). At block 515, the user activitystatistics are formatted. In one embodiment, the user activitystatistics are formatted into a generic format understandable bymultiple different computing devices. Examples of a generic formatinclude XML and SGML. In one embodiment, the “generic” format may beselected by the user. In one embodiment, the generic format includesformats such as spreadsheet formats, comma-delimited formats, humanreadable formats, etc. At block 520, the formatted user activitystatistics are transmitted. In one embodiment, the formatted useractivity statistics are transmitted to a mobile device such as a mobilephone, personal digital assistant (PDA), laptop computer, wrist watch,etc. Alternatively, the formatted user activity statistics may betransmitted to a server and/or a computing device such as a personalcomputer.

FIG. 6 illustrates a flow diagram for a method 600 of monitoring humanactivity using an inertial sensor, in accordance with one embodiment ofthe present invention. The method may be performed by processing logicthat may comprise hardware (e.g., circuitry, dedicated logic,programmable logic, microcode, etc.), software (such as instructions runon a processing device), or a combination thereof. In one embodiment,method 600 is performed by the electronic device 100 of FIG. 1. In oneembodiment, method 600 is performed by the motion identification system200 of FIG. 2.

Referring to FIG. 6, method 600 begins with monitoring accelerations(block 605). Accelerations may be monitored with an inertial sensor, orother acceleration monitoring device. At block 610, the accelerationsare processed to determine user activity statistics. At block 615,additional metrics are monitored from one or more additional sensors.Examples of additional sensors include a heat sensor, a pressure sensor,a heart rate sensor, etc. Examples of additional metrics include heartrate, body temperature, altitude, etc.

At block 620, the additional metrics are processed and correlated to theuser activity statistics. At block 625, the user activity statistics andthe additional metrics are formatted. In one embodiment, the useractivity statistics are formatted into a generic format understandableby multiple different computing devices. At block 630, the formatteduser activity statistics are transmitted along with the additionalmetrics. In one embodiment, the formatted user activity statistics andadditional metrics are transmitted to a mobile device such as a mobilephone, personal digital assistant (PDA), laptop computer, wrist watch,etc. Alternatively, the formatted user activity statistics may betransmitted to a server and/or a computing device such as a personalcomputer.

FIGS. 7-13 illustrate embodiments of methods and devices for determininga dominant axis. Referring to FIG. 7, a block diagram illustrating anelectronic device 701 is shown in accordance with one embodiment of thepresent invention. The electronic device 701 comprises a rolling averagelogic 705, a gravitational influence logic 707, a dominant axis logic710, a cadence logic 715, a sample period logic 717, and a motionrecognition logic 720. In one embodiment, the electronic device 701 is aportable electronic device that includes an accelerometer.

The rolling average logic 705 creates one or more rolling averages ofaccelerations as measured by an accelerometer over a sample period. Inone embodiment, the rolling average logic 705 creates a rolling averageof accelerations along a single axis. In another embodiment, the rollingaverage logic 705 creates rolling averages of accelerations alongmultiple axes. The length of the sample period over which the rollingaverage is taken determines the amount of past acceleration data that isaveraged with present acceleration data. In a longer sample period, morepast acceleration data is stored.

The rolling average logic 705 can create a simple rolling average and/oran exponential rolling average. In a simple rolling average, all data istreated equally. In an exponential rolling average, the most recent datais given more weight. In one embodiment, the rolling average logic 705creates a rolling average for each of the axes along which accelerationdata is taken.

In one embodiment, the cadence logic 715 detects a period of a cadenceof motion based upon user activity, and the sample period logic 717 setsthe sample period of the rolling averages based on the period of thecadence of motion. In one embodiment the gravitational influence logic707 identifies a gravitational influence based upon the rolling averagesof accelerations. The dominant axis logic 710 assigns the dominant axisbased upon the gravitational influence. The motion recognition logic 720can use the dominant axis to facilitate motion recognition.

FIGS. 8A and 8B illustrate an exemplary first rolling average graph 801and second rolling average graph 851, respectively. Both graphsrepresent time versus acceleration, shown by line 805. The first rollingaverage graph 801 shows a first rolling average 807 based on arelatively short sample period. The second rolling average graph 851shows a second rolling average 855 based on a longer sample period. Thelength of the sample period determines how sensitive the rolling averageis to fluctuations in acceleration. A short sample period as shown inFIG. 8B will measure brief fluctuations. In a longer sample period, asshown in FIG. 8A, brief fluctuations are averaged out. Additionally, arolling average always lags behind the present acceleration, and alonger sample period causes greater lag. Comparing FIGS. 8A and 8B, itcan be seen that the second rolling average 855 requires more time thanthe first rolling average 807 to reflect a change in acceleration.

In one embodiment, the sample period is preconfigured. In oneembodiment, the size of the sample period is adjusted based on theapplication(s) using the accelerometer data. In one embodiment, thesample period can be user selected from a list of options. In oneembodiment, the sample period can be determined by the cadence logic 705and the sample period logic 717.

In one embodiment, two or more rolling averages of accelerations aretracked concurrently. The two or more rolling averages can be rollingaverages along the same or different axes. In one embodiment, two ormore rolling averages are tracked concurrently for each of the axes.Concurrent tracking of rolling averages can be beneficial where a useris performing two actions at the same time, each of which requires adifferent level of sensitivity for acceleration measurements. Forexample, the use of different sample periods for two rolling averagescan be useful where the electronic device 701 is simultaneously countingsteps and tracking motions of a user as called for by a motion sensitivegame. In such an example, the motion sensitive game might require a veryshort sample period to measure quick motions, while the step countermight require a longer sample period so as to register only the user'ssteps.

Returning to FIG. 7, in one embodiment the cadence logic 715 detects aperiod of a cadence of motion based upon user activity (e.g.rollerblading, biking, running, walking, etc). Many types of motionsthat are useful to keep track of have a periodic set of movements.Specific periodic human motions may be characteristic of different typesof user activity. For example, to walk, an individual must lift a firstleg, move it forward, plant it, then repeat the same series of motionswith a second leg. In contrast, a person rollerblading performs arepeated sequence of pushing, coasting, and lift-off for each leg. For aparticular individual, the series of walking motions will usually occurin the same amount of time, and the series of rollerblading motions willusually occur in about the same amount of time. The repeated set ofmotions defines the cadence of the motion, while the amount of time overwhich the series of motions occurs defines the period of the cadence ofthe motion. For simplicity, the term “step” is used in the followingdescription to describe the user activity being evaluated. However, inthe context of this application, the term “step” should be taken to meanany user activity having a periodic set of movements.

FIG. 9 illustrates a cadence of motion graph 901 that measures timeversus acceleration. The acceleration at a given period of time isrepresented for a first axis 903, a second axis 905, and a third axis907. In one embodiment, a cadence logic analyzes the acceleration alongthe first axis 903, second axis 905 and third axis 907 to detect apattern. Once a pattern is detected, a period of the pattern isdetermined. This period corresponds to the period of the cadence ofmotion. FIG. 9 shows a period of a cadence of motion 910 for the thirdaxis 907. The same period can also be seen to a lesser degree in thesecond axis 905 and the first axis 903.

In one embodiment, periods can be determined for multiple cadences ofmotion. For example, if a user simultaneously walks and tosses a ball inthe air, in one embodiment the system can detect a period of the cadenceof tossing the ball, and a period of the cadence of walking.

Returning back to FIG. 7, once the period of a cadence of motion isdetected, the sample period logic 717 can set the sample period of therolling average based upon the period of the cadence of motion. In oneembodiment, the sample period is set such that it is approximately thelength of the period of the cadence of motion. Alternatively, the sampleperiod can be set so that it exceeds the length of the period of thecadence of motion. In one embodiment, the sample period is set such thatit is a multiple of the period of the cadence of motion.

In one embodiment, the gravitational influence logic 707 identifies agravitational influence based upon the rolling average or averages ofaccelerations. An accelerometer measures both dynamic accelerations,caused by user movement, and static acceleration, caused by gravity.This static acceleration is measured by an accelerometer as a constantacceleration that is equal and opposite to the force of gravity. Over aperiod of a cadence of motion, the dynamic acceleration caused by useractivity tends to average towards zero, which leaves primarily thestatic acceleration. The axis with the largest absolute rolling averageis the axis most influenced by gravity.

The axis that is most influenced by gravity can change over time. Forexample, as an electronic device 701 is rotated, the influence ofgravity will change for at least two axes in a three axis accelerometer.At some point in the rotation, the axis that experiences the mostgravitational influence will change. This change is shown in FIGS. 10Aand 10B.

FIG. 10A illustrates a first gravitational influence graph 1001 for adata set over a rolling average sample period of 2.5 seconds.Accelerations are shown along an x-axis 1005, a y-axis 1007, and az-axis 1009. In FIG. 10A, a device being measured is rotated about thez-axis over time. At time T=0, the y-axis 1007 has the largest absoluteacceleration value at over −400, while at time T=111 the x-axis has thelargest absolute acceleration value at −300.

In FIG. 10A, a first x-axis rolling average 1012, a first y-axis rollingaverage 1020 and a first z-axis rolling average 1010 are shown. The axiswith the largest absolute rolling average is the axis that is mostinfluenced by gravity at a given time. As rotation occurs, the rollingaverages change to reflect a change in the gravitational influence onthe device. Initially, the x-axis 1005 is most influenced by gravity. Atthe first point of intersection 1022 of the first x-axis rolling average1012 and the first y-axis rolling average 1020, the y-axis 1007 becomesthe axis most influenced by gravity. However, the axis that experiencesthe greatest gravitational influence changes at a time after therotation has actually occurred. This is due to a lag caused by the 2.5second sample period. To reduce this lag, the sample period can bereduced.

FIG. 10B illustrates a second gravitational influence graph 1051 for thesame data set as shown in FIG. 10A over a rolling average sample periodof 1 second. FIG. 10B shows a second x-axis rolling average 1060, asecond y-axis rolling average 1063 and a second z-axis rolling average1066. As shown, a second point of intersection 1070 occurs between thesecond x-axis rolling average 1060 and second y-axis rolling average1063 much earlier in time than the first point of intersection 1022. Theearlier point of intersection more accurately reflects the time whenrotation actually occurs. As shown by FIGS. 10A and 10B, a change in thelength of the sample period for the rolling average can greatly affectthe sensitivity of the device to changes in orientation.

In one embodiment, the gravitational influence logic 707 calculates thetotal gravity caused acceleration based upon the acceleration on eachaxis. The gravitational influence logic 707 in one embodiment thenassigns a percentage of the total acceleration to each axis. From thepercentage of total acceleration on the axes the gravitational influencelogic 707 then calculates the approximate device orientation.

Referring back to FIG. 7, the dominant axis logic 710 assigns a dominantaxis based upon the gravitational influence. In one embodiment, theactual axis with the largest absolute rolling average over the sampleperiod is assigned as the dominant axis. In this embodiment, thedominant axis therefore corresponds to the axis having the largestabsolute rolling average at a given time. In an alternative embodiment,the dominant axis does not correspond to one of the actual axes of theaccelerometer in its current orientation, but rather to an axis that isdefined as aligned to gravity.

FIG. 11 illustrates a plan view 1100 of an exemplary dominant axis 1102that does not correspond to one of the actual axes 1104 of anaccelerometer. The dominant axis 1102, as shown in FIG. 11, can be acomponent of the x axis, y axis, and/or z axis, and is approximatelyaligned with gravity 1106. In one embodiment, the dominant axis 1102corresponds to a virtual axis that is a component of a virtualcoordinate system. The relationship between the virtual coordinatesystem and the actual coordinate system can be determined by performinga coordinate transformation. In one embodiment, the virtual coordinatesystem is a virtual Cartesian coordinate system, in which the dominantaxis is one of a virtual x-axis, y-axis or z-axis. In alternativeembodiments, the dominant axis 1102 is a virtual axis of, for example, apolar coordinate system.

In one embodiment, the dominant axis logic 710 assigns the dominant axisby performing a true gravity assessment. A true gravity assessment maybe performed by doing trigonometric calculations on the actual axesbased on the gravitational influence. For example, the arcsine functioncan determine the exact angle between the actual axes and thegravitational influence. True gravity assessments can exactly align thedominant axis with the gravitational influence, but can be resourceexpensive.

In one embodiment, the dominant axis logic 710 assigns the dominant axisby comparing the gravitational influence to a lookup table. A lookuptable provides greater accuracy than assigning the dominant axis to theaxis that has the largest acceleration, and is less resource expensivethan calculating the exact gravitational influence on each axis. Alookup table divides accelerations into known limits that define aprobability range in which gravity is acting.

FIG. 12 illustrates an exemplary probability range 1200 represented by aplurality of projections, each of the projections corresponding to anentry on a lookup table. In the illustrated embodiment, the area ofspace swept by the projections defines a cone. In alternativeembodiments, the area of space swept by the projections defines othershapes. The lookup table that corresponds to the exemplary probabilityrange 1200 has six entries, each of which corresponds to a projectionhaving an included angle between opposite sides of ninety degrees. Forexample, if the gravitational influence acts within the first projection1203, then the table entry that corresponds to that projection isassigned as the dominant axis. The same applies to the second projection1205, and the other projections (not illustrated). As shown, thedominant axis is assigned to the table entry corresponding to the secondprojection 1205 because it is aligned with and in the direction of theforce of gravity 1207. In alternative embodiments, the dominant axis isassigned to the table entry corresponding to the projection that isaligned with and in the opposite direction of the force of gravity 1207.

Returning to FIG. 7, in one embodiment, the motion recognition logic 120detects gestures and/or steps by utilizing data regarding the dominantaxis. In one embodiment, certain gestures and/or steps are detected byutilizing the acceleration along only the dominant axis. In otherembodiments, acceleration along other axes may also be used and/oracceleration along only the non-dominant axes may be used. In oneembodiment, the dominant axis assignment is used to determine whether astep and/or gesture recognition cycle should be started. In oneembodiment, certain gestures may only be detected when the dominant axiscorresponds to a particular axis when the gesture is started. After thecertain gestures have begun, assignment of the dominant axis may beunimportant to continue the gesture recognition.

FIG. 13 shows a processing diagram 1300 for a method of determining anorientation of an accelerometer, in accordance with one embodiment ofthe present invention. In one embodiment, determining an orientation ofthe accelerometer determines an orientation of a device that includesthe accelerometer.

At processing block 1302, one or more rolling averages of accelerationsare created over a sample period. The rolling averages can be simplerolling averages or weighted rolling averages such as exponentialrolling averages. In an exponential rolling average, recent data isweighed more heavily relative to old data. The weighting applied to themost recent price depends on the specified period of the rollingaverage. The shorter the period, the more weight that will be applied tothe most recent measurement. This can cause the rolling average to reactmore quickly to changing conditions.

The sample period over which the rolling averages are created can bepre-configured, adjusted based upon applications being used, userselected, or determined dynamically. In one embodiment, two or morerolling averages of accelerations are created concurrently along thesame axes. The concurrent rolling averages can have different sampleperiods.

In one embodiment, if the sample period over which creation of therolling averages of accelerations is determined dynamically, a period ofa cadence of motion is detected at processing block 1308. Subsequently,a sample period is set at processing block 1310 based upon the period ofthe cadence of motion. In one embodiment, the sample period is set suchthat it has at least the period of the cadence of motion. In oneembodiment, the sample period is set to a multiple of the period of thecadence of motion. In one embodiment, periods can be determined formultiple cadences of motions at processing block 1308, and sampleperiods can be set for each determined cadence of motion. Thisembodiment facilitates the concurrent creation of two or more rollingaverages of accelerations over different sample periods.

In one embodiment, the orientation of the accelerometer is determinedbased upon the rolling average or averages of accelerations. In oneembodiment, determining the orientation of the accelerometer furtherincludes identifying a gravitational influence based on the rollingaverages of accelerations and determining the orientation, compared tothe X-Y-Z axes of the accelerometer.

At processing block 1304, a gravitational influence is identified basedupon the rolling average of accelerations. In one embodiment, thegravitational influence is identified by calculating the totalacceleration based upon the acceleration on each axis. In such anembodiment, a percentage of the total acceleration can then be assignedto each axis and an approximate device orientation can be determined. Atprocessing block 1306, a dominant axis is assigned based upon thegravitational influence.

The present invention may be performed by hardware components or may beembodied in machine-executable instructions, which may be used to causea general-purpose or special-purpose processor programmed with theinstructions to perform the method described above. Alternatively, themethod may be performed by a combination of hardware and software.

The present invention may be provided as a computer program product, orsoftware, that may include a machine-readable medium having storedthereon instructions, which may be used to program a computer system (orother electronic devices) to perform a process according to the presentinvention. The machine-readable medium may include, but is not limitedto, floppy diskettes, optical disks, CD-ROMs, and magneto-optical disks,ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, flash memory, orother type of media or machine-readable mediums suitable for storingelectronic instructions.

In the foregoing description, numerous specific details have been setforth such as examples of specific systems, languages, components, etc.in order to provide a thorough understanding of the present invention.It will be apparent, however, to one skilled in the art that thesespecific details need not be employed to practice the present invention.In other instances, well known materials or methods have not beendescribed in detail in order to avoid unnecessarily obscuring thepresent invention.

In the foregoing specification, the invention has been described withreference to specific exemplary embodiments thereof. It will, however,be evident that various modifications and changes may be made theretowithout departing from the broader spirit and scope of the invention asset forth in the appended claims. The specification and drawings are,accordingly, to be regarded in an illustrative rather than a restrictivesense.

What is claimed is:
 1. A method comprising: generating accelerationmeasurements by an inertial sensor that is integrated into a garmentmade of materials that incorporate one or more sensors and provide bodycoverage; storing the acceleration measurements in a memory that isintegrated into the garment; periodically establishing a connection toan electronic device for communication, the electronic device remotefrom the garment into which the inertial sensor is integrated;transmitting a formatted version the acceleration measurements to theelectronic device via the connection, the electronic device used toidentify a current user activity and a current user activity level; andassigning a dominant axis to the inertial sensor, the dominant axis anaxis most influenced by gravity, by creating a rolling average ofaccelerations for each of the plurality of axes, comparing a value ofthe rolling average of accelerations for a first axis to values of therolling averages of accelerations for one or more additional axes of theplurality of axes, and based upon relative values of the rollingaverages of accelerations assigning the dominant axis.
 2. The method ofclaim 1, further comprising: processing the acceleration measurements bythe electronic device to identify the current user activity, from amonga plurality of activities; and processing the acceleration measurementsto detect periodic human motions associated with the identified useractivity, such that a separate motion count is maintained for each ofthe plurality of types of periodic human motions.
 3. The method of claim2, further comprising: processing the acceleration measurements todetermine user activity statistics associated with the identified useractivity, wherein the user activity statistics include at least one of acount of periodic human motions, a total distance traveled, a verticaldistance traveled, a current speed, an average speed, calories burned,and a user orientation to gravity.
 4. The method of claim 1, furthercomprising: formatting the acceleration measurements to a generic markuplanguage format understandable by a plurality of devices beforetransmitting the acceleration measurements to the electronic device. 5.The method of claim 1, further comprising: generating measurement databy one or more additional sensors that are integrated into the garment;storing the measurement data in the memory; and transmitting themeasurement data to the electronic device via the connection.
 6. Themethod of claim 5, wherein the one or more additional sensors include atleast one of a heart rate sensor, a pressure sensor, a moisture sensor,a capacitance sensor, a sound sensor and a heat sensor.
 7. The method ofclaim 1, further comprising: receiving a user feedback signal from theelectronic device by the garment; and providing user feedback to awearer of the garment by a feedback mechanism integrated into thegarment based on the user feedback signal, wherein the user feedbackincludes at least one of aural, visual, and tactile feedback.
 8. Themethod of claim 1, wherein the acceleration measurements are transmittedto the electronic device as the acceleration measurements are generated.9. A garment comprising: a garment portion to cover a portion of auser's body made of materials that incorporate one or more sensors; acomputing portion that is one of: embedded in, attached to, integralwith, or a part of the garment portion; the computing portion including:an inertial sensor to generate acceleration measurements; a memory tostore the acceleration measurements; and a transmitter to periodicallytransmit at least one of the acceleration measurements or formatted databased on the acceleration measurements to an electronic device, theelectronic device remote from the garment, the electronic device used tocalculate a user activity based on the formatted data; wherein theinertial sensor is assigned a dominant axis, the dominant axis an axismost influenced by gravity, by creating a rolling average ofaccelerations for each of the plurality of axes, comparing a value ofthe rolling average of accelerations for a first axis to values of therolling averages of accelerations for one or more additional axes of theplurality of axes, and based upon relative values of the rollingaverages of accelerations assigning the dominant axis.
 10. The garmentof claim 9, wherein the computing portion further comprises a processorto process the acceleration measurements to identify a user activity andto detect periodic human motion associated with the identified useractivity.
 11. The garment of claim 10, further comprising: the processorto determine user activity statistics associated with the user activity,wherein the user activity statistics include at least one of a count ofperiodic human motions, a total distance traveled, a vertical distancetraveled, a current speed, an average speed, calories burned, and a userorientation to gravity.
 12. The garment of claim 11, further comprising:the processor to format the user activity statistics to a generic formatreadable by a plurality of devices; and the transmitter to transmit theformatted user activity statistics to the electronic device.
 13. Thegarment of claim 9, the computing portion further comprising: one ormore additional sensors to make additional measurements; the memory tostore the additional measurements; and the transmitter to transmit atleast one of the additional sensor measurements or additional formatteddata based on the additional measurements.
 14. The garment of claim 9,the computing portion further comprising: a feedback mechanism toprovide user feedback to a wearer of the garment based on at least oneof the formatted data or a feedback signal received from the electronicdevice, wherein the feedback mechanism provides at least one of aural,visual and tactile feedback.
 15. The garment of claim 10, wherein thecomputing portion further determines an orientation of the garment withrespect to gravity and an axis aligned closes to gravity, such thatmeasurements along the axis are utilized to identify the user activity.16. An inertial sensor based device comprising: a garment portion to beworn on a user's torso, the garment portion made of a fabric, thegarment portion made of materials that incorporate one or more sensors;an inertial sensor integral with the garment portion to monitoraccelerations along a plurality of axes, the inertial sensorincorporated into the fabric of the garment portion, the inertial sensorhaving an assigned dominant axis, the dominant axis an axis mostinfluenced by gravity, by creating a rolling average of accelerationsfor each of the plurality of axes, comparing a value of the rollingaverage of accelerations for a first axis to values of the rollingaverages of accelerations for one or more additional axes of theplurality of axes, and based upon relative values of the rollingaverages of accelerations assigning the dominant axis; a processorintegral with the garment portion and coupled to the inertial sensor toprocess the accelerations to determine one or more user activitystatistics; a transmitter integral with the garment portion toperiodically transmit formatted user activity statistics in a genericformat from the garment portion to a remote electronic device, theremote electronic device providing a display to enable a user to viewthe user activity statistics.
 17. The inertial sensor based device ofclaim 16, wherein integral with the garment comprises being: embeddedin, attached to, or a part of the garment portion.
 18. The inertialsensor based device of claim 16, further comprising: a feedbackmechanism to provide feedback to a wearer of the garment based on atleast one of aural, visual, and tactile feedback.
 19. The inertialsensor based device of claim 16, further comprising: the processor toprocess the acceleration measurements to determine user activitystatistics associated with the identified user activity, wherein theuser activity statistics include at least one of a count of periodichuman motions, a total distance traveled, a vertical distance traveled,a current speed, an average speed, calories burned, and a userorientation to gravity.
 20. The inertial sensor based device of claim16, further comprising: the processor to determine user activitystatistics associated with the user activity, wherein the user activitystatistics include at least one of a count of periodic human motions, atotal distance traveled, a vertical distance traveled, a current speed,an average speed, calories burned, and a user orientation to gravity.